package com.example.websockettest.api;

import org.springframework.web.bind.annotation.RestController;

import javax.websocket.*;
import javax.websocket.server.PathParam;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;

/**
 * WebSocket传参
 */
@ServerEndpoint("/api/websocket/{param}")
@RestController
public class WebSocketParamAPI {

	/**
	 * 连接建立成功调用的方法
	 */
	@OnOpen
	public void onOpen(Session session, @PathParam("param") String param) { // 传参写在此
		System.out.println("有新连接加入！ID是：" + session.getId() + " 传入路径参数：" + param);
	}

	/**
	 * 连接关闭调用的方法
	 */
	@OnClose
	public void onClose(Session session) throws IOException {
		System.out.println("有一连接关闭！ID是：" + session.getId());
		session.close();
	}

	/**
	 * 收到客户端消息后调用的方法
	 */
	@OnMessage
	public void onMessage(String message, Session session) throws Exception {
		// ...
	}

	/**
	 * 发生错误时调用
	 */
	@OnError
	public void onError(Session session, Throwable error) {
		System.out.println("发生错误！发生时间：" + System.currentTimeMillis() + "，ID是：" + session.getId());
		error.printStackTrace();
	}

}